package com.fand.platform.configuration.dao;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import lombok.val;

import org.apache.commons.lang3.StringUtils;

import com.fand.dto.PaginationDto;
import com.fand.persistent.builder.ModelArgs;
import com.fand.persistent.builder.ModelBuilder;
import com.fand.persistent.builder.ModelBuilderUtils;
import com.fand.persistent.support.DaoJdbcSupport;
import com.fand.platform.configuration.dto.DictionaryDeDto;
import com.fand.platform.configuration.dto.DictionaryDeLoDto;
import com.fand.platform.configuration.dto.DictionaryDto;
import com.fand.platform.configuration.dto.DictionaryLaDto;
import com.fand.platform.configuration.dto.DictionaryLaLoDto;
import com.fand.platform.configuration.dto.DictionaryLoDto;
import com.fand.platform.configuration.dto.DictionaryTyDto;
import com.fand.platform.configuration.dto.DictionaryTyLoDto;
import com.google.common.collect.Maps;

/**
 * 字典
 * 
 * @author yaoHT
 * 
 */
public class DictionaryJdbcDao extends DaoJdbcSupport implements DictionaryDao {

	@Override
	public int deleteDictionaryBy1(DictionaryDto deleteDictionary, String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(deleteDictionary,
				whereEqProperties));

		return this.update("configuration/dictionary/deleteDictionaryBy1", modelBuilder.build());
	}

	@Override
	public int deleteDictionaryBy1_1(DictionaryDto deleteDictionary) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(deleteDictionary));

		return this.update("configuration/dictionary/deleteDictionaryBy1", modelBuilder.build());
	}

	@Override
	public int deleteDictionaryByIds(DictionaryDto deleteDictionary) {
		val model = new HashMap<String, Object>();

		model.put("IDS", deleteDictionary.getIds());

		return this.update("configuration/dictionary/deleteDictionaryByIds", model);
	}

	@Override
	public int deleteDictionaryDeBy1(DictionaryDeDto deleteDictionaryDe, String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(deleteDictionaryDe,
				whereEqProperties));

		return this.update("configuration/dictionaryDe/deleteDictionaryDeBy1", modelBuilder.build());
	}

	@Override
	public int deleteDictionaryDeLoBy1(DictionaryDeLoDto deleteDictionaryDeLo, String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(deleteDictionaryDeLo,
				whereEqProperties));

		return this.update("configuration/dictionaryDeLo/deleteDictionaryDeLoBy1", modelBuilder.build());
	}

	@Override
	public int deleteDictionaryLaBy1(DictionaryLaDto deleteDictionaryLa, String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(deleteDictionaryLa,
				whereEqProperties));

		return this.update("configuration/dictionaryLa/deleteDictionaryLaBy1", modelBuilder.build());
	}

	@Override
	public int deleteDictionaryLaBy1_1(DictionaryLaDto deleteDictionaryLa) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(deleteDictionaryLa));

		return this.update("configuration/dictionaryLa/deleteDictionaryLaBy1", modelBuilder.build());
	}

	@Override
	public int deleteDictionaryLaBy2(DictionaryLaDto deleteDictionaryLa) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(deleteDictionaryLa));

		return this.update("configuration/dictionaryLa/deleteDictionaryLaBy2", modelBuilder.build());
	}

	@Override
	public int deleteDictionaryLaLoBy1(DictionaryLaLoDto deleteDictionaryLaLo, String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(deleteDictionaryLaLo,
				whereEqProperties));

		return this.update("configuration/dictionaryLaLo/deleteDictionaryLaLoBy1", modelBuilder.build());
	}

	@Override
	public int deleteDictionaryLoBy1(DictionaryLoDto deleteDictionaryLo, String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(deleteDictionaryLo,
				whereEqProperties));

		return this.update("configuration/dictionaryLo/deleteDictionaryLoBy1", modelBuilder.build());
	}

	@Override
	public int deleteDictionaryTyBy1(DictionaryTyDto deleteDictionaryTy, String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(deleteDictionaryTy,
				whereEqProperties));

		return this.update("configuration/dictionaryTy/deleteDictionaryTyBy1", modelBuilder.build());
	}

	@Override
	public int deleteDictionaryTyBy1_1(DictionaryTyDto deleteDictionaryTy) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(deleteDictionaryTy));

		return this.update("configuration/dictionaryTy/deleteDictionaryTyBy1", modelBuilder.build());
	}

	@Override
	public int deleteDictionaryTyByIds(DictionaryTyDto deleteDictionaryTy) {
		val model = new HashMap<String, Object>();

		model.put("IDS", deleteDictionaryTy.getIds());

		return this.update("configuration/dictionaryTy/deleteDictionaryTyByIds", model);
	}

	@Override
	public int deleteDictionaryTyLoBy1(DictionaryTyLoDto deleteDictionaryTyLo, String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(deleteDictionaryTyLo,
				whereEqProperties));

		return this.update("configuration/dictionaryTyLo/deleteDictionaryTyLoBy1", modelBuilder.build());
	}

	@Override
	public int insertDictionaryBy1(DictionaryDto insertDictionary, String... insertProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(ModelBuilder.INSERT,
				insertDictionary, insertProperties));
		return this.update("configuration/dictionary/insertDictionaryBy1", modelBuilder.build());
	}

	@Override
	public int insertDictionaryBy1_1(DictionaryDto insertDictionary) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(ModelBuilder.INSERT,
				insertDictionary));
		return this.update("configuration/dictionary/insertDictionaryBy1", modelBuilder.build());
	}

	@Override
	public int insertDictionaryBy2(DictionaryDto insertDictionary) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(ModelBuilder.INSERT,
				insertDictionary));

		return this.update("configuration/dictionary/insertDictionaryBy2", modelBuilder.build());
	}

	@Override
	public int insertDictionaryDeBy1(DictionaryDeDto insertDictionaryDe, String... insertProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(ModelBuilder.INSERT,
				insertDictionaryDe, insertProperties));
		return this.update("configuration/dictionaryDe/insertDictionaryDeBy1", modelBuilder.build());
	}

	@Override
	public int insertDictionaryDeLoBy1(DictionaryDeLoDto insertDictionaryDeLo, String... insertProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(ModelBuilder.INSERT,
				insertDictionaryDeLo, insertProperties));
		return this.update("configuration/dictionaryDeLo/insertDictionaryDeLoBy1", modelBuilder.build());
	}

	@Override
	public int insertDictionaryLaBy1(DictionaryLaDto insertDictionaryLa, String... insertProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(ModelBuilder.INSERT,
				insertDictionaryLa, insertProperties));
		return this.update("configuration/dictionaryLa/insertDictionaryLaBy1", modelBuilder.build());
	}

	@Override
	public int insertDictionaryLaBy1_1(DictionaryLaDto insertDictionaryLa) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(ModelBuilder.INSERT,
				insertDictionaryLa));
		return this.update("configuration/dictionaryLa/insertDictionaryLaBy1", modelBuilder.build());
	}

	@Override
	public int insertDictionaryLaBy2(DictionaryLaDto insertDictionaryLa) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(ModelBuilder.INSERT,
				insertDictionaryLa));

		return this.update("configuration/dictionaryLa/insertDictionaryLaBy2", modelBuilder.build());
	}

	@Override
	public int insertDictionaryLaLoBy1(DictionaryLaLoDto insertDictionaryLaLo, String... insertProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(ModelBuilder.INSERT,
				insertDictionaryLaLo, insertProperties));
		return this.update("configuration/dictionaryLaLo/insertDictionaryLaLoBy1", modelBuilder.build());
	}

	@Override
	public int insertDictionaryLoBy1(DictionaryLoDto insertDictionaryLo, String... insertProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(ModelBuilder.INSERT,
				insertDictionaryLo, insertProperties));
		return this.update("configuration/dictionaryLo/insertDictionaryLoBy1", modelBuilder.build());
	}

	@Override
	public int insertDictionaryTyBy1(DictionaryTyDto insertDictionaryTy, String... insertProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(ModelBuilder.INSERT,
				insertDictionaryTy, insertProperties));
		return this.update("configuration/dictionaryTy/insertDictionaryTyBy1", modelBuilder.build());
	}

	@Override
	public int insertDictionaryTyBy1_1(DictionaryTyDto insertDictionaryTy) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(ModelBuilder.INSERT,
				insertDictionaryTy));
		return this.update("configuration/dictionaryTy/insertDictionaryTyBy1", modelBuilder.build());
	}

	@Override
	public int insertDictionaryTyBy2(DictionaryTyDto insertDictionaryTy) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(ModelBuilder.INSERT,
				insertDictionaryTy));

		return this.update("configuration/dictionaryTy/insertDictionaryTyBy2", modelBuilder.build());
	}

	@Override
	public int insertDictionaryTyLoBy1(DictionaryTyLoDto insertDictionaryTyLo, String... insertProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(ModelBuilder.INSERT,
				insertDictionaryTyLo, insertProperties));
		return this.update("configuration/dictionaryTyLo/insertDictionaryTyLoBy1", modelBuilder.build());
	}

	@Override
	public PaginationDto<Map<String, Object>> paginationDictionaryBy1ForMapList(DictionaryDto paginationDictionary) {
		final Map<String, Object> model = Maps.newHashMap();

		model.put("CODE", paginationDictionary.getCode());

		model.put("VALUE", paginationDictionary.getValue());

		model.put("TYPE_ID", paginationDictionary.getTypeId());

		return this.paginationForMapList("configuration/dictionary/selectDictionaryBy2ForObject",
				"configuration/dictionary/selectDictionaryBy2ForMappedObjectList",
				paginationDictionary.getPaginationNo(), paginationDictionary.getPaginationSize(), model);
	}

	@Override
	public <R> PaginationDto<R> paginationDictionaryBy1ForMappedObjectList(Class<R> mappedClass,
			DictionaryDto paginationDictionary) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(paginationDictionary));

		return this.paginationForMappedObjectList(mappedClass,
				"configuration/dictionary/selectDictionaryBy1ForObject",
				"configuration/dictionary/selectDictionaryBy1ForMappedObjectList",
				paginationDictionary.getPaginationNo(), paginationDictionary.getPaginationSize(),
				modelBuilder.build());
	}

	@Override
	public PaginationDto<Map<String, Object>> paginationDictionaryLaBy1ForMapList(
			DictionaryLaDto paginationDictionaryLa) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(paginationDictionaryLa));

		return this.paginationForMapList("configuration/dictionaryLa/selectDictionaryLaBy1ForObject",
				"configuration/dictionaryLa/selectDictionaryLaBy1ForMappedObjectList",
				paginationDictionaryLa.getPaginationNo(), paginationDictionaryLa.getPaginationSize(),
				modelBuilder.build());
	}

	@Override
	public <R> PaginationDto<R> paginationDictionaryLaBy1ForMappedObjectList(Class<R> mappedClass,
			DictionaryLaDto paginationDictionaryLa) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(paginationDictionaryLa));

		return this.paginationForMappedObjectList(mappedClass,
				"configuration/dictionaryLa/selectDictionaryLaBy1ForObject",
				"configuration/dictionaryLa/selectDictionaryLaBy1ForMappedObjectList",
				paginationDictionaryLa.getPaginationNo(), paginationDictionaryLa.getPaginationSize(),
				modelBuilder.build());
	}

	@Override
	public PaginationDto<Map<String, Object>> paginationDictionaryTyBy1ForMapList(
			DictionaryTyDto paginationDictionaryTy) {
		final Map<String, Object> model = Maps.newHashMap();

		model.put("CODE", paginationDictionaryTy.getCode());

		model.put("VALUE", paginationDictionaryTy.getValue());

		model.put("DICTIONARY_CODE", paginationDictionaryTy.getDictionaryCo());

		return this.paginationForMapList("configuration/dictionaryTy/selectDictionaryTyBy2ForObject",
				"configuration/dictionaryTy/selectDictionaryTyBy2ForMappedObjectList",
				paginationDictionaryTy.getPaginationNo(), paginationDictionaryTy.getPaginationSize(), model);
	}

	@Override
	public <R> PaginationDto<R> paginationDictionaryTyBy1ForMappedObjectList(Class<R> mappedClass,
			DictionaryTyDto paginationDictionaryTy) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(paginationDictionaryTy));

		return this.paginationForMappedObjectList(mappedClass,
				"configuration/dictionaryTy/selectDictionaryTyBy1ForObject",
				"configuration/dictionaryTy/selectDictionaryTyBy1ForMappedObjectList",
				paginationDictionaryTy.getPaginationNo(), paginationDictionaryTy.getPaginationSize(),
				modelBuilder.build());
	}

	@Override
	public <R> R selectDictionaryBy1_1ForMappedObject(Class<R> mappedClass, DictionaryDto selectDictionary) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionary));

		return this.selectForMappedObject(mappedClass,
				"configuration/dictionary/selectDictionaryBy1ForMappedObjectList", modelBuilder.build());
	}

	@Override
	public <R> List<R> selectDictionaryBy1_1ForMappedObjectList(Class<R> mappedClass, DictionaryDto selectDictionary) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionary));

		return this.selectForMappedObjectList(mappedClass,
				"configuration/dictionary/selectDictionaryBy1ForMappedObjectList", modelBuilder.build());
	}

	@Override
	public <R> R selectDictionaryBy1_1ForObject(Class<R> requiredType, DictionaryDto selectDictionary,
			String objectId) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionary));

		return this.selectForObject(requiredType, "configuration/dictionary/selectDictionaryBy1ForObject", objectId,
				modelBuilder.build());
	}

	@Override
	public <R> List<R> selectDictionaryBy1_1ForObjectList(Class<R> requiredType, DictionaryDto selectDictionary,
			String objectId) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionary));

		return this.selectForObjectList(requiredType, "configuration/dictionary/selectDictionaryBy1ForObject",
				objectId, modelBuilder.build());
	}

	@Override
	public <R> R selectDictionaryBy1ForMappedObject(Class<R> mappedClass, DictionaryDto selectDictionary,
			String[] selectProperties, String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionary,
				whereEqProperties));

		modelBuilder.putTrueExtend(ModelBuilder.SELECT, selectProperties);

		return this.selectForMappedObject(mappedClass,
				"configuration/dictionary/selectDictionaryBy1ForMappedObjectList", modelBuilder.build());
	}

	@Override
	public <R> List<R> selectDictionaryBy1ForMappedObjectList(Class<R> mappedClass, DictionaryDto selectDictionary,
			String[] selectProperties, String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionary,
				whereEqProperties));

		modelBuilder.putTrueExtend(ModelBuilder.SELECT, selectProperties);

		return this.selectForMappedObjectList(mappedClass,
				"configuration/dictionary/selectDictionaryBy1ForMappedObjectList", modelBuilder.build());
	}

	@Override
	public <R> R selectDictionaryBy1ForObject(Class<R> requiredType, DictionaryDto selectDictionary,
			String objectId, String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionary,
				whereEqProperties));

		return this.selectForObject(requiredType, "configuration/dictionary/selectDictionaryBy1ForObject", objectId,
				modelBuilder.build());
	}

	@Override
	public <R> List<R> selectDictionaryBy1ForObjectList(Class<R> requiredType, DictionaryDto selectDictionary,
			String objectId, String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionary,
				whereEqProperties));

		return this.selectForObjectList(requiredType, "configuration/dictionary/selectDictionaryBy1ForObject",
				objectId, modelBuilder.build());
	}

	@Override
	public <R> List<R> selectDictionaryBy2ForMappedObjectList(Class<R> mappedClass, String typeCo) {
		val model = new HashMap<String, Object>();

		model.put("TYPE_CO", typeCo);

		return this.selectForMappedObjectList(mappedClass,
				"configuration/dictionary/selectDictionaryByTypeCoForMappedObjectList", model);
	}

	@Override
	public <R> List<R> selectDictionaryBy2ForObjectList(Class<R> requiredType, DictionaryDto selectDictionary,
			String objectId) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionary));

		return this.selectForObjectList(requiredType, "configuration/dictionary/selectDictionaryBy2ForObject",
				objectId, modelBuilder.build());
	}

	@Override
	public <R> R selectDictionaryByIdForMappedObject(Class<R> mappedClass, DictionaryDto selectDictionary) {
		val model = new HashMap<String, Object>();

		model.put("ID", selectDictionary.getId());

		return this.selectForMappedObject(mappedClass,
				"configuration/dictionary/selectDictionaryByIdForMappedObjectList", model);
	}

	@Override
	public String selectDictionaryByTypeCoEqCodeForId(String typeCo, String code) {
		val model = new HashMap<String, Object>();

		model.put("TYPE_CO", typeCo);

		model.put("CODE", code);

		return this.selectForObject(String.class,
				"configuration/dictionary/selectDictionaryByTypeCoAndCodeForObject", "id", model);
	}

	@Override
	public Integer selectDictionaryByTypeIdEqCodeNqIdForInteger(DictionaryDto selectDictionary) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionary, "code",
				"typeId"));

		if (StringUtils.isNotBlank(selectDictionary.getId())) {
			modelBuilder.putExtend(ModelBuilder.WHERE__AND__NQ, "id", null, selectDictionary.getId());
		}

		return this.selectForObject(Integer.class, "configuration/dictionary/selectDictionaryBy1ForObject", null,
				modelBuilder.build());
	}

	@Override
	public <R> R selectDictionaryDeBy1ForMappedObject(Class<R> mappedClass, DictionaryDeDto selectDictionaryDe,
			String[] selectProperties, String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionaryDe,
				whereEqProperties));

		modelBuilder.putTrueExtend(ModelBuilder.SELECT, selectProperties);

		return this.selectForMappedObject(mappedClass,
				"configuration/dictionaryDe/selectDictionaryDeBy1ForMappedObjectList", modelBuilder.build());
	}

	@Override
	public <R> List<R> selectDictionaryDeBy1ForMappedObjectList(Class<R> mappedClass,
			DictionaryDeDto selectDictionaryDe, String[] selectProperties, String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionaryDe,
				whereEqProperties));

		modelBuilder.putTrueExtend(ModelBuilder.SELECT, selectProperties);

		return this.selectForMappedObjectList(mappedClass,
				"configuration/dictionaryDe/selectDictionaryDeBy1ForMappedObjectList", modelBuilder.build());
	}

	@Override
	public <R> R selectDictionaryDeBy1ForObject(Class<R> requiredType, DictionaryDeDto selectDictionaryDe,
			String objectId, String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionaryDe,
				whereEqProperties));

		return this.selectForObject(requiredType, "configuration/dictionaryDe/selectDictionaryDeBy1ForObject",
				objectId, modelBuilder.build());
	}

	@Override
	public <R> List<R> selectDictionaryDeBy1ForObjectList(Class<R> requiredType, DictionaryDeDto selectDictionaryDe,
			String objectId, String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionaryDe,
				whereEqProperties));

		return this.selectForObjectList(requiredType, "configuration/dictionaryDe/selectDictionaryDeBy1ForObject",
				objectId, modelBuilder.build());
	}

	@Override
	public <R> R selectDictionaryDeLoBy1ForMappedObject(Class<R> mappedClass,
			DictionaryDeLoDto selectDictionaryDeLo, String[] selectProperties, String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionaryDeLo,
				whereEqProperties));

		modelBuilder.putTrueExtend(ModelBuilder.SELECT, selectProperties);

		return this.selectForMappedObject(mappedClass,
				"configuration/dictionaryDeLo/selectDictionaryDeLoBy1ForMappedObjectList", modelBuilder.build());
	}

	@Override
	public <R> List<R> selectDictionaryDeLoBy1ForMappedObjectList(Class<R> mappedClass,
			DictionaryDeLoDto selectDictionaryDeLo, String[] selectProperties, String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionaryDeLo,
				whereEqProperties));

		modelBuilder.putTrueExtend(ModelBuilder.SELECT, selectProperties);

		return this.selectForMappedObjectList(mappedClass,
				"configuration/dictionaryDeLo/selectDictionaryDeLoBy1ForMappedObjectList", modelBuilder.build());
	}

	@Override
	public <R> R selectDictionaryDeLoBy1ForObject(Class<R> requiredType, DictionaryDeLoDto selectDictionaryDeLo,
			String objectId, String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionaryDeLo,
				whereEqProperties));

		return this.selectForObject(requiredType, "configuration/dictionaryDeLo/selectDictionaryDeLoBy1ForObject",
				objectId, modelBuilder.build());
	}

	@Override
	public <R> List<R> selectDictionaryDeLoBy1ForObjectList(Class<R> requiredType,
			DictionaryDeLoDto selectDictionaryDeLo, String objectId, String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionaryDeLo,
				whereEqProperties));

		return this.selectForObjectList(requiredType,
				"configuration/dictionaryDeLo/selectDictionaryDeLoBy1ForObject", objectId, modelBuilder.build());
	}

	@Override
	public <R> R selectDictionaryLaBy1_1ForMappedObject(Class<R> mappedClass, DictionaryLaDto selectDictionaryLa) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionaryLa));

		return this.selectForMappedObject(mappedClass,
				"configuration/dictionaryLa/selectDictionaryLaBy1ForMappedObjectList", modelBuilder.build());
	}

	@Override
	public <R> List<R> selectDictionaryLaBy1_1ForMappedObjectList(Class<R> mappedClass,
			DictionaryLaDto selectDictionaryLa) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionaryLa));

		return this.selectForMappedObjectList(mappedClass,
				"configuration/dictionaryLa/selectDictionaryLaBy1ForMappedObjectList", modelBuilder.build());
	}

	@Override
	public <R> R selectDictionaryLaBy1_1ForObject(Class<R> requiredType, DictionaryLaDto selectDictionaryLa,
			String objectId) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionaryLa));

		return this.selectForObject(requiredType, "configuration/dictionaryLa/selectDictionaryLaBy1ForObject",
				objectId, modelBuilder.build());
	}

	@Override
	public <R> List<R> selectDictionaryLaBy1_1ForObjectList(Class<R> requiredType,
			DictionaryLaDto selectDictionaryLa, String objectId) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionaryLa));

		return this.selectForObjectList(requiredType, "configuration/dictionaryLa/selectDictionaryLaBy1ForObject",
				objectId, modelBuilder.build());
	}

	@Override
	public <R> R selectDictionaryLaBy1ForMappedObject(Class<R> mappedClass, DictionaryLaDto selectDictionaryLa,
			String[] selectProperties, String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionaryLa,
				whereEqProperties));

		modelBuilder.putTrueExtend(ModelBuilder.SELECT, selectProperties);

		return this.selectForMappedObject(mappedClass,
				"configuration/dictionaryLa/selectDictionaryLaBy1ForMappedObjectList", modelBuilder.build());
	}

	@Override
	public <R> List<R> selectDictionaryLaBy1ForMappedObjectList(Class<R> mappedClass,
			DictionaryLaDto selectDictionaryLa, String[] selectProperties, String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionaryLa,
				whereEqProperties));

		modelBuilder.putTrueExtend(ModelBuilder.SELECT, selectProperties);

		return this.selectForMappedObjectList(mappedClass,
				"configuration/dictionaryLa/selectDictionaryLaBy1ForMappedObjectList", modelBuilder.build());
	}

	@Override
	public <R> R selectDictionaryLaBy1ForObject(Class<R> requiredType, DictionaryLaDto selectDictionaryLa,
			String objectId, String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionaryLa,
				whereEqProperties));

		return this.selectForObject(requiredType, "configuration/dictionaryLa/selectDictionaryLaBy1ForObject",
				objectId, modelBuilder.build());
	}

	@Override
	public <R> List<R> selectDictionaryLaBy1ForObjectList(Class<R> requiredType, DictionaryLaDto selectDictionaryLa,
			String objectId, String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionaryLa,
				whereEqProperties));

		return this.selectForObjectList(requiredType, "configuration/dictionaryLa/selectDictionaryLaBy1ForObject",
				objectId, modelBuilder.build());
	}

	@Override
	public <R> R selectDictionaryLaBy2ForMappedObject(Class<R> mappedClass, DictionaryLaDto selectDictionaryLa) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionaryLa));

		return this.selectForMappedObject(mappedClass,
				"configuration/dictionaryLa/selectDictionaryLaBy2ForMappedObjectList", modelBuilder.build());
	}

	@Override
	public <R> List<R> selectDictionaryLaBy2ForMappedObjectList(Class<R> mappedClass,
			DictionaryLaDto selectDictionaryLa) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionaryLa));

		return this.selectForMappedObjectList(mappedClass,
				"configuration/dictionaryLa/selectDictionaryLaBy2ForMappedObjectList", modelBuilder.build());
	}

	@Override
	public <R> R selectDictionaryLaBy2ForObject(Class<R> requiredType, DictionaryLaDto selectDictionaryLa,
			String objectId) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionaryLa));

		return this.selectForObject(requiredType, "configuration/dictionaryLa/selectDictionaryLaBy2ForObject",
				objectId, modelBuilder.build());
	}

	@Override
	public <R> List<R> selectDictionaryLaBy2ForObjectList(Class<R> requiredType, DictionaryLaDto selectDictionaryLa,
			String objectId) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionaryLa));

		return this.selectForObjectList(requiredType, "configuration/dictionaryLa/selectDictionaryLaBy2ForObject",
				objectId, modelBuilder.build());
	}

	@Override
	public <R> R selectDictionaryLaLoBy1ForMappedObject(Class<R> mappedClass,
			DictionaryLaLoDto selectDictionaryLaLo, String[] selectProperties, String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionaryLaLo,
				whereEqProperties));

		modelBuilder.putTrueExtend(ModelBuilder.SELECT, selectProperties);

		return this.selectForMappedObject(mappedClass,
				"configuration/dictionaryLaLo/selectDictionaryLaLoBy1ForMappedObjectList", modelBuilder.build());
	}

	@Override
	public <R> List<R> selectDictionaryLaLoBy1ForMappedObjectList(Class<R> mappedClass,
			DictionaryLaLoDto selectDictionaryLaLo, String[] selectProperties, String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionaryLaLo,
				whereEqProperties));

		modelBuilder.putTrueExtend(ModelBuilder.SELECT, selectProperties);

		return this.selectForMappedObjectList(mappedClass,
				"configuration/dictionaryLaLo/selectDictionaryLaLoBy1ForMappedObjectList", modelBuilder.build());
	}

	@Override
	public <R> R selectDictionaryLaLoBy1ForObject(Class<R> requiredType, DictionaryLaLoDto selectDictionaryLaLo,
			String objectId, String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionaryLaLo,
				whereEqProperties));

		return this.selectForObject(requiredType, "configuration/dictionaryLaLo/selectDictionaryLaLoBy1ForObject",
				objectId, modelBuilder.build());
	}

	@Override
	public <R> List<R> selectDictionaryLaLoBy1ForObjectList(Class<R> requiredType,
			DictionaryLaLoDto selectDictionaryLaLo, String objectId, String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionaryLaLo,
				whereEqProperties));

		return this.selectForObjectList(requiredType,
				"configuration/dictionaryLaLo/selectDictionaryLaLoBy1ForObject", objectId, modelBuilder.build());
	}

	@Override
	public <R> R selectDictionaryLoBy1ForMappedObject(Class<R> mappedClass, DictionaryLoDto selectDictionaryLo,
			String[] selectProperties, String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionaryLo,
				whereEqProperties));

		modelBuilder.putTrueExtend(ModelBuilder.SELECT, selectProperties);

		return this.selectForMappedObject(mappedClass,
				"configuration/dictionaryLo/selectDictionaryLoBy1ForMappedObjectList", modelBuilder.build());
	}

	@Override
	public <R> List<R> selectDictionaryLoBy1ForMappedObjectList(Class<R> mappedClass,
			DictionaryLoDto selectDictionaryLo, String[] selectProperties, String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionaryLo,
				whereEqProperties));

		modelBuilder.putTrueExtend(ModelBuilder.SELECT, selectProperties);

		return this.selectForMappedObjectList(mappedClass,
				"configuration/dictionaryLo/selectDictionaryLoBy1ForMappedObjectList", modelBuilder.build());
	}

	@Override
	public <R> R selectDictionaryLoBy1ForObject(Class<R> requiredType, DictionaryLoDto selectDictionaryLo,
			String objectId, String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionaryLo,
				whereEqProperties));

		return this.selectForObject(requiredType, "configuration/dictionaryLo/selectDictionaryLoBy1ForObject",
				objectId, modelBuilder.build());
	}

	@Override
	public <R> List<R> selectDictionaryLoBy1ForObjectList(Class<R> requiredType, DictionaryLoDto selectDictionaryLo,
			String objectId, String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionaryLo,
				whereEqProperties));

		return this.selectForObjectList(requiredType, "configuration/dictionaryLo/selectDictionaryLoBy1ForObject",
				objectId, modelBuilder.build());
	}

	@Override
	public <R> R selectDictionaryTyBy1_1ForMappedObject(Class<R> mappedClass, DictionaryTyDto selectDictionaryTy) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionaryTy));

		return this.selectForMappedObject(mappedClass,
				"configuration/dictionaryTy/selectDictionaryTyBy1ForMappedObjectList", modelBuilder.build());
	}

	@Override
	public <R> List<R> selectDictionaryTyBy1_1ForObjectList(Class<R> requiredType,
			DictionaryTyDto selectDictionaryTy, String objectId) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionaryTy));

		return this.selectForObjectList(requiredType, "configuration/dictionaryTy/selectDictionaryTyBy1ForObject",
				objectId, modelBuilder.build());
	}

	@Override
	public <R> R selectDictionaryTyBy1ForMappedObject(Class<R> mappedClass, DictionaryTyDto selectDictionaryTy,
			String[] selectProperties, String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionaryTy,
				whereEqProperties));

		modelBuilder.putTrueExtend(ModelBuilder.SELECT, selectProperties);

		return this.selectForMappedObject(mappedClass,
				"configuration/dictionaryTy/selectDictionaryTyBy1ForMappedObjectList", modelBuilder.build());
	}

	@Override
	public <R> List<R> selectDictionaryTyBy1ForMappedObjectList(Class<R> mappedClass,
			DictionaryTyDto selectDictionaryTy, String[] selectProperties, String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionaryTy,
				whereEqProperties));

		modelBuilder.putTrueExtend(ModelBuilder.SELECT, selectProperties);

		return this.selectForMappedObjectList(mappedClass,
				"configuration/dictionaryTy/selectDictionaryTyBy1ForMappedObjectList", modelBuilder.build());
	}

	@Override
	public <R> R selectDictionaryTyBy1ForObject(Class<R> requiredType, DictionaryTyDto selectDictionaryTy,
			String objectId, String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionaryTy,
				whereEqProperties));

		return this.selectForObject(requiredType, "configuration/dictionaryTy/selectDictionaryTyBy1ForObject",
				objectId, modelBuilder.build());
	}

	@Override
	public <R> List<R> selectDictionaryTyBy1ForObjectList(Class<R> requiredType, DictionaryTyDto selectDictionaryTy,
			String objectId, String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionaryTy,
				whereEqProperties));

		return this.selectForObjectList(requiredType, "configuration/dictionaryTy/selectDictionaryTyBy1ForObject",
				objectId, modelBuilder.build());
	}

	@Override
	public <R> List<R> selectDictionaryTyBy2ForMappedObjectList(Class<R> mappedClass,
			DictionaryTyDto selectDictionaryTy) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionaryTy));

		return this.selectForMappedObjectList(mappedClass,
				"configuration/dictionaryTy/selectDictionaryTyBy2ForMappedObjectList", modelBuilder.build());
	}

	@Override
	public <R> R selectDictionaryTyBy2ForObject(Class<R> requiredType, DictionaryTyDto selectDictionaryTy,
			String objectId) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionaryTy));

		return this.selectForObject(requiredType, "configuration/dictionaryTy/selectDictionaryTyBy2ForObject",
				objectId, modelBuilder.build());
	}

	@Override
	public <R> List<R> selectDictionaryTyBy2ForObjectList(Class<R> requiredType, DictionaryTyDto selectDictionaryTy,
			String objectId) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionaryTy));

		return this.selectForObjectList(requiredType, "configuration/dictionaryTy/selectDictionaryTyBy2ForObject",
				objectId, modelBuilder.build());
	}

	@Override
	public Integer selectDictionaryTyByCodeNqIdForInteger(DictionaryTyDto selectDictionaryTy) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder().putExtend(null, "code", null,
				selectDictionaryTy.getCode());

		if (StringUtils.isNotBlank(selectDictionaryTy.getId())) {
			modelBuilder.putExtend(ModelBuilder.WHERE__AND__NQ, "id", null, selectDictionaryTy.getId());
		}

		return this.selectForObject(Integer.class, "configuration/dictionaryTy/selectDictionaryTyBy1ForObject",
				null, modelBuilder.build());
	}

	@Override
	public <R> R selectDictionaryTyByIdForMappedObject(Class<R> mappedClass, DictionaryTyDto selectDictionaryTy) {
		val model = new HashMap<String, Object>();

		model.put("ID", selectDictionaryTy.getId());

		return this.selectForMappedObject(mappedClass,
				"configuration/dictionaryTy/selectDictionaryTyByIdForMappedObjectList", model);
	}

	@Override
	public <R> List<R> selectDictionaryTyByParentIdNqIdForMappedObjectList(Class<R> mappedClass,
			DictionaryTyDto selectDictionaryTy) {
		final Map<String, Object> model = Maps.newHashMap();

		model.put("ID", selectDictionaryTy.getId());
		model.put("PARENT_ID", selectDictionaryTy.getParentId());

		return this.selectForMappedObjectList(mappedClass,
				"configuration/dictionaryTy/selectDictionaryTyByParentIdNqIdForMappedObjectList", model);
	}

	@Override
	public <R> R selectDictionaryTyLoBy1ForMappedObject(Class<R> mappedClass,
			DictionaryTyLoDto selectDictionaryTyLo, String[] selectProperties, String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionaryTyLo,
				whereEqProperties));

		modelBuilder.putTrueExtend(ModelBuilder.SELECT, selectProperties);

		return this.selectForMappedObject(mappedClass,
				"configuration/dictionaryTyLo/selectDictionaryTyLoBy1ForMappedObjectList", modelBuilder.build());
	}

	@Override
	public <R> List<R> selectDictionaryTyLoBy1ForMappedObjectList(Class<R> mappedClass,
			DictionaryTyLoDto selectDictionaryTyLo, String[] selectProperties, String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionaryTyLo,
				whereEqProperties));

		modelBuilder.putTrueExtend(ModelBuilder.SELECT, selectProperties);

		return this.selectForMappedObjectList(mappedClass,
				"configuration/dictionaryTyLo/selectDictionaryTyLoBy1ForMappedObjectList", modelBuilder.build());
	}

	@Override
	public <R> R selectDictionaryTyLoBy1ForObject(Class<R> requiredType, DictionaryTyLoDto selectDictionaryTyLo,
			String objectId, String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionaryTyLo,
				whereEqProperties));

		return this.selectForObject(requiredType, "configuration/dictionaryTyLo/selectDictionaryTyLoBy1ForObject",
				objectId, modelBuilder.build());
	}

	@Override
	public <R> List<R> selectDictionaryTyLoBy1ForObjectList(Class<R> requiredType,
			DictionaryTyLoDto selectDictionaryTyLo, String objectId, String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(selectDictionaryTyLo,
				whereEqProperties));

		return this.selectForObjectList(requiredType,
				"configuration/dictionaryTyLo/selectDictionaryTyLoBy1ForObject", objectId, modelBuilder.build());
	}

	@Override
	public int updateDictionaryBy1(DictionaryDto updateDictionary, String[] updateProperties,
			String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(ModelBuilder.UPDATE,
				updateDictionary, updateProperties), new ModelArgs(updateDictionary, whereEqProperties));

		return this.update("configuration/dictionary/updateDictionaryBy1", modelBuilder.build());
	}

	@Override
	public int updateDictionaryBy1_1(DictionaryDto updateDictionary) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(updateDictionary));

		return this.update("configuration/dictionary/updateDictionaryBy1", modelBuilder.build());
	}

	@Override
	public int updateDictionaryBy2(DictionaryDto updateDictionary) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(updateDictionary));

		return this.update("configuration/dictionary/updateDictionaryBy2", modelBuilder.build());
	}

	@Override
	public int updateDictionaryDeBy1(DictionaryDeDto updateDictionaryDe, String[] updateProperties,
			String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(ModelBuilder.UPDATE,
				updateDictionaryDe, updateProperties), new ModelArgs(updateDictionaryDe, whereEqProperties));

		return this.update("configuration/dictionaryDe/updateDictionaryDeBy1", modelBuilder.build());
	}

	@Override
	public int updateDictionaryDeLoBy1(DictionaryDeLoDto updateDictionaryDeLo, String[] updateProperties,
			String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(ModelBuilder.UPDATE,
				updateDictionaryDeLo, updateProperties), new ModelArgs(updateDictionaryDeLo, whereEqProperties));

		return this.update("configuration/dictionaryDeLo/updateDictionaryDeLoBy1", modelBuilder.build());
	}

	@Override
	public int updateDictionaryLaBy1(DictionaryLaDto updateDictionaryLa, String[] updateProperties,
			String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(ModelBuilder.UPDATE,
				updateDictionaryLa, updateProperties), new ModelArgs(updateDictionaryLa, whereEqProperties));

		return this.update("configuration/dictionaryLa/updateDictionaryLaBy1", modelBuilder.build());
	}

	@Override
	public int updateDictionaryLaBy1_1(DictionaryLaDto updateDictionaryLa) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(updateDictionaryLa));

		return this.update("configuration/dictionaryLa/updateDictionaryLaBy1", modelBuilder.build());
	}

	@Override
	public int updateDictionaryLaBy2(DictionaryLaDto updateDictionaryLa) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(updateDictionaryLa));

		return this.update("configuration/dictionaryLa/updateDictionaryLaBy2", modelBuilder.build());
	}

	@Override
	public int updateDictionaryLaLoBy1(DictionaryLaLoDto updateDictionaryLaLo, String[] updateProperties,
			String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(ModelBuilder.UPDATE,
				updateDictionaryLaLo, updateProperties), new ModelArgs(updateDictionaryLaLo, whereEqProperties));

		return this.update("configuration/dictionaryLaLo/updateDictionaryLaLoBy1", modelBuilder.build());
	}

	@Override
	public int updateDictionaryLoBy1(DictionaryLoDto updateDictionaryLo, String[] updateProperties,
			String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(ModelBuilder.UPDATE,
				updateDictionaryLo, updateProperties), new ModelArgs(updateDictionaryLo, whereEqProperties));

		return this.update("configuration/dictionaryLo/updateDictionaryLoBy1", modelBuilder.build());
	}

	@Override
	public int updateDictionaryTyBy1(DictionaryTyDto updateDictionaryTy, String[] updateProperties,
			String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(ModelBuilder.UPDATE,
				updateDictionaryTy, updateProperties), new ModelArgs(updateDictionaryTy, whereEqProperties));

		return this.update("configuration/dictionaryTy/updateDictionaryTyBy1", modelBuilder.build());
	}

	@Override
	public int updateDictionaryTyBy2(DictionaryTyDto updateDictionaryTy) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(updateDictionaryTy));

		return this.update("configuration/dictionaryTy/updateDictionaryTyBy2", modelBuilder.build());
	}

	@Override
	public int updateDictionaryTyByMove(DictionaryTyDto updateDictionaryTy) {
		final Map<String, Object> model = Maps.newHashMap();

		model.put("PARENT_ID", updateDictionaryTy.getParentId());
		model.put("ID", updateDictionaryTy.getId());
		model.put("POINT_CO", updateDictionaryTy.getPointCo());

		return this.update("configuration/dictionaryTy/updateDictionaryTyByMove", model);
	}

	@Override
	public int updateDictionaryTyLoBy1(DictionaryTyLoDto updateDictionaryTyLo, String[] updateProperties,
			String... whereEqProperties) {
		final ModelBuilder modelBuilder = ModelBuilderUtils.newModelBuilder(new ModelArgs(ModelBuilder.UPDATE,
				updateDictionaryTyLo, updateProperties), new ModelArgs(updateDictionaryTyLo, whereEqProperties));

		return this.update("configuration/dictionaryTyLo/updateDictionaryTyLoBy1", modelBuilder.build());
	}
}